package com.zjmzxfzhl.integrityconstraint.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 数据缓存注解
 *
 * @author 庄金明
 */
@Target(value = {ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ValueAnnotation {
    /**
     * 缓存key值
     */
    String key() default "";

    /**
     * 数据值表达式,最终以 HashMap 形式存入缓存,
     * examples
     * 1. #paramName 取参数名为 paramName的值
     * 2. #someParam.paramName 取参数名 someParam 的属性 paramName的值
     * 3. #someBo.method1() 支持对象方法
     */
    String valueExpression() default "";
}
